#!/usr/bin/env python3
# --*-- coding:utf8 --*--

# Editor  : B-man
# Date    : 2017-08-18
# Summary : Module Thread practice

# import _thread  #废弃
import time

# 语法： _thread.start_new_thread (function ,args[, kwargs] )
# function - 线程函数
# args     - 传递给线程函数的参数，必须是tuple类型
# kwargs   - 可选参数

# 为线程定义一个函数
# def print_time (threadName , delay ):
#     count = 0
#     while count < 5:
#         time.sleep(delay)
#         count += 1
#         print ("{0}: {1}".format(threadName , time.ctime(time.time() )))

# 创建两个线程
# try:
#     _thread.start_new_thread( print_time, ("Thread-1",2, ))
#     _thread.start_new_thread( print_time, ("Thread-2",4, ))
# except:
#     print("Error: Cant start thread")


# threading线程模块
# threading.currentThread()  当前线程变量
# threading.enumerate() 返回一个包含正在运行的线程的list。
# threading.activeCount() 返回正在运行的线程数量

import threading

exitFlag = 0


class  MyThread(threading.Thread):
    def __init__(self, threadID, name,counter):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.counter = counter
    def run(self):
        print ("开始进程："+ self.name+ "\n")
        print_time(self.name,self.counter,5)
        print ("退出线程："+ self.name)

def print_time(threadName , delay ,counter):
    while counter:
        if exitFlag:
            threadName.exit()
        time.sleep(delay)
        print ("{0}: {1}".format(threadName , time.ctime(time.time() )) )
        counter -= 1

#创建新线程
thread1 = MyThread(1 , "Thread-1", 1)
thread2 = MyThread(2 , "Thread-2", 2)

# 开启新线程
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print ("退出主线程")






















